Skip to content

fix(activesync): guard ResolveRecipients free/busy lookup failures#200

Merged
TDannhauer merged 1 commit into
FRAMEWORK_6_0from
fix/activesync-resolve-recipient-freebusy
Jul 16, 2026
Merged

fix(activesync): guard ResolveRecipients free/busy lookup failures#200
TDannhauer merged 1 commit into
FRAMEWORK_6_0from
fix/activesync-resolve-recipient-freebusy

Conversation

@TDannhauer

Copy link
Copy Markdown
Contributor

Summary

  • Fix PHP warning when ActiveSync ResolveRecipients availability lookup fails
  • Treat missing/failed free/busy as optional (debug log only)
  • Add unit coverage for false and keyed-false connector results

Motivation

Clients often request availability for addresses that have no free/busy
data (especially external invitees without a free/busy URL). The connector
returned bare false, and the driver indexed it as an array, producing
Trying to access array offset on false in the Horde log.

Changes

  • Connector: on lookupFreeBusy failure, log at debug and return [$query => false]
  • Driver: only read $fb[$search] when $fb is an array with that key
  • Tests: DriverResolveRecipientTest for both failure shapes

Test plan

  • DriverResolveRecipientTest (2 tests)
  • ActiveSync ResolveRecipients with availability for an external address without free/busy URL — no PHP warning; availability status not-found
  • Same for a local Horde user with calendar — availability still returned

When calendar free/busy lookup fails (common for external addresses
without a free/busy URL), return a keyed false result and only log at
debug. Guard the driver against non-array connector results so
availability requests no longer trigger PHP array-offset warnings.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.

@TDannhauer
TDannhauer merged commit a74d5f4 into FRAMEWORK_6_0 Jul 16, 2026
1 of 3 checks passed
@TDannhauer
TDannhauer deleted the fix/activesync-resolve-recipient-freebusy branch July 16, 2026 19:01
ralflang added a commit that referenced this pull request Jul 18, 2026
Release version 3.2.1

fix(core): preserve descriptor schemas in ApiRegistry re-wrapping
Merge pull request #200 from horde/fix/activesync-resolve-recipient-freebusy
fix(activesync): guard ResolveRecipients free/busy lookup failures
fix(core): preserve Unix socket SQL config in DbServiceFactory
fix(core): keep Horde_Session::$begin readable after close() (imp#88)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants